<?php

class Model_Wallet extends \Orm\Model
{

    protected static $_properties = array(
        'id',
        'user_id',
        'name',
        'current_money',
        'created_at',
        'updated',
        'deleted',
        'status',
        'earn', //'created_at', để như thế này lúc dùng creat_auth ko bị lỗi.
        'spent', //dupdated_at',
    );
    protected static $_observers = array(
        'Orm\Observer_CreatedAt' => array(
            'events' => array('before_insert'),
            'mysql_timestamp' => false,
        ),
        'Orm\Observer_UpdatedAt' => array(
            'events' => array('before_update'),
            'mysql_timestamp' => false,
        ),
    );
    protected static $_table_name = 'wallets';
    protected static $_belongs_to = array(
    'users' => array(
        'key_from' => 'user_id',
        'model_to' => 'Model_User',
        'key_to' => 'id',
        'cascade_save' => true,
        'cascade_delete' => false,
    )
);

    public static function get_validation_add(Validation $val)
    {
        $val->add_callable(new MyRules()); //thêm rules unique của mình
        $val->add_field('name', 'Wallet name', 'required|trim|min_length[3]|max_length[20]|valid_string[alpha,lowercase,numeric]|unique[wallets.name]');
        $val->add_field('current_money', 'Money', 'required|valid_string[numeric]');
        return $val;
    }

    public static function get_validation_edit(Validation $val) // cai nay luat unique chi xet tren nhung truong khac no
    {
        $val->add_callable(new MyRules()); //thêm rules unique của mình
        $val->add_field('name', 'Wallet name', 'required|trim|min_length[3]|max_length[20]|valid_string[alpha,lowercase,numeric]');
        $val->add_field('current_money', 'Money', 'required|valid_string[numeric]');
        return $val;
    }

}
